/*
 * @(#)MetalCheckBoxUI.java	1.17 03/01/23
 *
 * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package lookandfeel.Dmetal;

import javax.swing.AbstractButton;
import javax.swing.JComponent;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;

/**
 * CheckboxUI implementation for MetalCheckboxUI
 * <p>
 * <strong>Warning:</strong> Serialized objects of this class will not be
 * compatible with future Swing releases. The current serialization support is
 * appropriate for short term storage or RMI between applications running the
 * same version of Swing. As of 1.4, support for long term storage of all
 * JavaBeans<sup><font size="-2">TM</font></sup> has been added to the
 * <code>java.beans</code> package. Please see {@link java.beans.XMLEncoder}.
 * 
 * @version 1.17 01/23/03
 * @author Michael C. Albers
 * 
 */
public class MetalCheckBoxUI extends MetalRadioButtonUI
{

	// NOTE: MetalCheckBoxUI inherts from MetalRadioButtonUI instead
	// of BasicCheckBoxUI because we want to pick up all the
	// painting changes made in MetalRadioButtonUI.

	private final static MetalCheckBoxUI checkboxUI = new MetalCheckBoxUI();

	private final static String propertyPrefix = "CheckBox" + ".";

	private boolean defaults_initialized = false;

	// ********************************
	// Create PlAF
	// ********************************
	public static ComponentUI createUI(JComponent b)
	{
		return checkboxUI;
	}

	@Override
	public String getPropertyPrefix()
	{
		return propertyPrefix;
	}

	// ********************************
	// Defaults
	// ********************************
	@Override
	public void installDefaults(AbstractButton b)
	{
		super.installDefaults(b);
		if (!defaults_initialized)
		{
			icon = UIManager.getIcon(getPropertyPrefix() + "icon");
			defaults_initialized = true;
		}
	}

	@Override
	protected void uninstallDefaults(AbstractButton b)
	{
		super.uninstallDefaults(b);
		defaults_initialized = false;
	}

}
